﻿/*************************************************
  * 描述：筛选排序的代理model；
  *
  * File：cxifilterproxy.h
  * Author：gaomaolong@mozihealthcare.cn
  * Date：2025-10-16
  * Update：
  * ************************************************/
#ifndef CXIFILTERPROXY_H
#define CXIFILTERPROXY_H

#include <qsortfilterproxymodel.h>

class CxiFilterProxy : public QSortFilterProxyModel
{
public:
	explicit CxiFilterProxy(QObject* parent = nullptr);

	/**
	 * 给某一列添加过滤条件
	 * @param column 列
	 * @param condition 过滤条件
	 */
	void addFilter(int column, const QString& condition);

	/**
	 * 移除某一列的过滤条件
	 * @param column 列
	 */
	void removeFilter(int column);

	/**
	 * 清空过滤条件
	 */
	void clearFilter();

protected:
	bool filterAcceptsRow(int source_row, const QModelIndex& source_parent) const override;

private:
	QMap<int, QString> m_conditions;
};

#endif//CXIFILTERPROXY_H